﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using SOAPReserva.Dominio;
using SOAPReserva.Persistencia;
using System.Messaging;

namespace SOAPReserva
{
    public class ReservaService : IReservaService
    {
        private DepositoDAO depositoDAO = null;
        private DepositoDAO DepositoDAO
        {
            get
            {
                if (depositoDAO == null)
                    depositoDAO = new DepositoDAO();
                return depositoDAO;
            }

        }

        public List<Deposito> ListarDepositos()
        {
            string rutaCola = @".\private$\chucknorris";
            if (!MessageQueue.Exists(rutaCola))
            {
                MessageQueue.Create(rutaCola);
            }
            MessageQueue cola = new MessageQueue(rutaCola);
            int cantidad = cola.GetAllMessages().Length;
            cola.Formatter = new XmlMessageFormatter(new Type[] { typeof(Deposito) });
            Message mensaje = null;
            for (int i = 0; i < cantidad; i++)
            {
                mensaje = cola.Receive();
                Deposito deposito = (Deposito)mensaje.Body;
                DepositoDAO.Crear(deposito);
            }




            return DepositoDAO.ListarTodos().ToList();
        }
    }
}
